// 对axios进行二次封装
// 1.基地址
// 2.请求拦截器
// 3.transformResponse:大数处理

import axios from 'axios'
import store from '../store/index'
import JSONBig from 'json-bigint'
const instance1 = axios.create({
  baseURL: 'http://ttapi.research.itcast.cn',
  // timeout: 1000,
  // headers: { 'X-Custom-Header': 'foobar' }
  transformResponse: [function (data) {
  // 由于后端返回的数据有出现大数问题(文章编号),在这里使用json-bigint处理一下
  // 优先使用jsonbig转一下
    try {
      return JSONBig.parse(data)
    } catch (err) {
      return data
    }
  }]
})
// 添加请求拦截器
instance1.interceptors.request.use(function (config) {
  console.log('config', config)
  // 在发送请求之前做些什么
  // 1.有token就带上
  const token = store.state.tokeninof.token
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

const instance2 = axios.create({
  // 后端服务器2
  baseURL: 'http://ttapi.research.itcast.cn'
  // timeout: 1000,
  // headers: {'X-Custom-Header': 'foobar'}
})
export { instance1, instance2 }

// 默认导出instance1
export default instance1
